You can get a list of files with uos.listdir(<dir>). If you tell the version by the modification data, uos.stat()[7] tells you the file modification time, given that the clock was set appropriately, and machine.reset() can be called to reset the device.
If you do not have RTC supplied by a battery, you can set the time via ntp by:
from machine import RTC
rtc=RTC()
rtc.ntp_sync("pool.ntp.org")
Then, the file modification times are valid.
If you use another mechanism as version indicator, like the name of a file or the content of a file, you have to define and implement it yourself.